#ifndef _MEGA_MENU_H_
#define _MEGA_MENU_H_

#include <SFML/Graphics/Color.hpp>
#include <SFML/Graphics/Font.hpp>
#include <SFML/Graphics/RectangleShape.hpp>
#include <vector>

#include "GameView.h"
#include "MenuItem.h"

namespace mega
{

/**
 * Base abstract class for game menus.
 */
class Menu
	: public GameView
{
public:
	Menu();
	virtual ~Menu();

	Menu(const Menu & _rhs);
	Menu & operator=(const Menu & _rhs);

public:
	virtual void initItems();
	virtual void expand();

	//game object interface
	virtual void render(RenderTarget & _target);
	virtual void move(const Position & _offset);

protected:
	sf::Font  m_font;
	sf::Color m_bgColor;
	sf::Color m_btnColor;
	sf::Color m_btnBorderColor;
	Size      m_btnSize;
	
	sf::Color m_btnTextColor;
	size_t    m_btnTextSize;

	sf::RectangleShape m_shape;
	
	std::vector<MenuItem*> m_items;
};

}

#endif // _MEGA_MENU_H_